package org.facyt.vacas.daos.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.facyt.vacas.daos.ClasificacionDAO;
import org.facyt.vacas.entities.vacas.Clasificacion;
import org.springframework.stereotype.Repository;
@Repository
public class ClasificacionDAOImpl implements ClasificacionDAO {

	private final Log logger = LogFactory.getLog(getClass());

	@PersistenceContext
	private EntityManager entityManager;

	public EntityManager getEntityManager() {
		return entityManager;
	}

	public void setEntityManager(EntityManager entityManager) {
		this.entityManager = entityManager;
	}

	public Clasificacion getClasificacionById(int id) throws Exception {
		try {
			Clasificacion clasificacion = this.entityManager.find(
					Clasificacion.class, Long.valueOf(id).longValue());
			return clasificacion;
		} catch (Exception e) {
			logger.error("Error al cargar la clasificacion", e);
		}

		return null;

	}

	public List<Clasificacion> getTodasClasificacion() throws Exception {

		List<Clasificacion> lista = null;
		StringBuilder queryString = new StringBuilder();

		// Si el id del grupo que viene como parametro es Facyt, se deben
		// mostrar TODAS las mp. de la base
		//buscar las materias primas del usuario 1 Facyt mas las del
		// usuarios idusuario.
		queryString.append("FROM Clasificacion c ");
		// queryString.append("where materiaprima.grupo.id = :id ");
		// queryString.append("or materiaprima.grupo.id = :idFacyt ");

		try {
			// se crea la cuery
			Query query = this.entityManager
					.createQuery(queryString.toString());

			lista = (List<Clasificacion>) query.getResultList();

		} catch (Exception e) {
			logger.error("", e);
			return null;
		}

		return lista;
	}

}
